﻿using System;
using System.Collections.Generic;
using System.Web;
using VemTransporte.Models.Basica;
using NHibernate;

namespace VemTransporte.Models.Persistencia
{
    public class RepUsuario: GenericNHibernateDAO<Usuario, int>
    {
        public Usuario ProcurarUsuarioPorEMail(string email)
        {
            Usuario retorno = null;
            try
            {
                Session.Clear();//used to delete all objects from the cache .

                IQuery query = Session.CreateQuery("from Usuario where USU_EMail=:email").SetString("email", email);

                retorno = query.UniqueResult<Usuario>();

            }
            catch
            {
                throw new Exception("Erro ao tentar procurar usuário por E-Mail! Contate o administrador do site.");
            }

            return retorno;
        }

        public Usuario ProcurarUsuarioPorEmailESenha(string email, string senha)
        {
            Usuario retorno = null;
            try
            {
                Session.Clear();//used to delete all objects from the cache .

                IQuery query = Session.CreateQuery("from Usuario where USU_EMail=:email and USU_Senha=:senha").SetString("email", email).SetString("senha", senha);
                retorno = query.UniqueResult<Usuario>();

            }
            catch(Exception ex)
            {
                throw new Exception("Usuário não encontrado! Detalhes: " + ex.Message);
            }

            return retorno;
        }
    }
}